﻿using System;

namespace DbManager.QueryBuilder.DbEntity.Client
{
    public class EntityClient : AEntityClient
    {
        public override string GetSelectQuery()
        {
            return "SELECT Идентификатор AS Hide_ID, Фамилия, Имя, Отчество, [Телефон 1] AS [Тел 1], [Телефон 2] AS [Тел 2], Email, Адрес, [Дополнительные данные], [Черный список] AS Hide_BlackList FROM Клиент ORDER BY Идентификатор DESC";
        }

        public override string GetInsertQuery()
        {
            if (string.IsNullOrEmpty(Surname) ||
                string.IsNullOrEmpty(Name) ||
                string.IsNullOrEmpty(FatherName) ||
                string.IsNullOrEmpty(Telephone1) ||
                string.IsNullOrEmpty(Telephone2) ||
                string.IsNullOrEmpty(Adress))
            {
                return string.Empty;
            }

            return
                "INSERT INTO Клиент (Фамилия, Имя, Отчество, [Телефон 1], [Телефон 2], Адрес, [Черный список], Email, [Дополнительные данные]) VALUES('" +
                Surname + "', '" + Name + "', '" + FatherName + "', '" + Telephone1 + "', '" + Telephone2 + "', '" +
                Adress + "', False, '" + Email + "', '" + AdditionatData + "')";
        }

        public override string GetUpdateQuery()
        {
            if (string.IsNullOrEmpty(Surname) ||
                string.IsNullOrEmpty(Name) ||
                string.IsNullOrEmpty(FatherName) ||
                string.IsNullOrEmpty(Telephone1) ||
                string.IsNullOrEmpty(Telephone2) ||
                string.IsNullOrEmpty(Adress) ||
                ID == 0)
            {
                return string.Empty;
            }

            return "UPDATE Клиент SET Фамилия = '" + Surname + "', Имя = '" + Name + "', Отчество = '" + FatherName + "', [Телефон 1] = '" + Telephone1 + "', [Телефон 2] = '" + Telephone2 + "', Адрес = '" + Adress + "', Email = '" + Email + "', [Дополнительные данные] = '" + AdditionatData + "', [Черный список] = " + BlackList + " WHERE (Клиент.Идентификатор = " + ID + ")";
        }

        public override string GetDeleteQuery()
        {
            if (ID == 0) return string.Empty;
            return "DELETE FROM Клиент WHERE (Идентификатор = " + ID + ")";
        }
    }
}
